const mysql = require('mysql2');
const sqlConfig = require('../config/mysql.js');
/**
 * 方法一  连接池连接法
 * 连接池连接方法，适用于正常项目
 * 
*/
const pool = mysql.createPool(sqlConfig);

// 获取一条连接池的连接
pool.getConnection((err, connection) => {
    if (err) throw err; 
    // 查询数据库列表
    connection.query('SHOW DATABASES', (err, results)=>{
        if(err) {
            console.error('查询数据库列表失败:', err);
            return false;
        }
        // 判断数据库是否存在
        const databaseExists = results.some((database) => database.Database === 'xiaoqu');
    
        if (databaseExists) {
            console.log('数据库存在', );
            // 关闭数据库连接
            connection.release();
        } else {
            console.log('数据库不存在');
            // 创建数据库
            let sql = 'CREATE DATABASE xiaoqu'
            connection.query(sql, (err,result) => {
                if(err) throw err
                console.log('创建数据库xiaoqu成功')
                // 关闭数据库连接
                connection.release();
            })
        }
    })    
});

/**
 * 方法二   普通连接法
 * 普通连接方法，适用于开发学习，正常项目使用连接池更为合适贴切
 * 
*/
// const connection = mysql.createConnection(sqlConfig);
// 连接数据库
// connection.connect((err)=>{
//     if(err) {
//         console.error('数据库连接失败:', err);
//         return false;
//     }
//     // 查询数据库列表
//     connection.query('SHOW DATABASES', (err, results)=>{
//         if(err) {
//             console.error('查询数据库列表失败:', err);
//             return false;
//         }
//         console.log('打印数据库列表',results)
//         // 判断数据库是否存在
//         const databaseExists = results.some((database) => database.Database === 'xiaoqu');
    
//         if (databaseExists) {
//             console.log('数据库存在', databaseExists);
//             // 关闭数据库连接
//             connection.end();
//         } else {
//             console.log('数据库不存在');
//             let sql = 'CREATE DATABASE xiaoqu'
//             connection.query(sql, (err,result) => {
//                 if(err) throw err
//                 console.log('创建数据库xiaoqu成功')
//                 // 关闭数据库连接
//                 connection.end();
//             })
//         }
//     })
// })

module.exports = pool